<?php
/**
 * Created by PhpStorm.
 * User: xiong <1099446868@qq.com>
 * DateTime: 2019/1/2
 * TIME: 19:57
 */

namespace app\index\controller;


use think\Controller;
use think\Db;
use Swoole;

class Api extends Controller {

    public function getTable($id) {
        return switchTableById2($id);
    }

    public static function RankingList(int $page = 1): array {

        $xpath = config('xpath');
        $selects = $xpath['zh']['list'];
        $r = [];
        foreach ($selects as $z => $v) {
            $url = $v['url'] . '&p=' . $page;
            $html = curl_get($url);
            $con = getContent($html, $v['select'], true);
            $con = trim($con);
            $con = explode("加入书架", $con);
            foreach ($con as $k => $v) {
                $v = trim($v);
                $con[$k] = explode("\n", $v);
                foreach ($con[$k] as $n => $m) {
                    $con[$k][$n] = trim($m);
                }
                if ($k < 20) {
                    $r[$z][$k]['bookname'] = $con[$k][0];
                    $author = explode('|', $con[$k][3]);
                    $r[$z][$k]['author'] = $author[0];
                }
            }
        }

        return $r;
    }

    public function getrank($rank = 'click', int $page = 1) {
        $s = [
            'click'   => [
                'select' => '/html/body/div[2]/div[4]/div[2]/div[3]/div',
                'url'    => 'http://www.zongheng.com/rank/details.html?rt=5&d=1&p=',
                'second' => [
                    'bookname' => '//div[@class="rank_d_b_name"]/a',
                    'author'   => '//div[@class="rank_d_b_cate"]/a[1]',
                    's'        => '//div[@class="rank_d_b_ticket"]'
                ]
            ],
            'tuijian' => [
                'select' => '/html/body/div[2]/div[4]/div[2]/div[3]/div',
                'url'    => 'http://www.zongheng.com/rank/details.html?rt=6&d=1&p=',
                'second' => [
                    'bookname' => '//div[@class="rank_d_b_name"]/a',
                    'author'   => '//div[@class="rank_d_b_cate"]/a[1]',
                    's'        => '//div[@class="rank_d_b_ticket"]'
                ]
            ]
        ];
        $html = curl_get($s[$rank]['url'] . $page);
        $con = getContent($html, $s[$rank]['select']);
        foreach ($con as $k => $v) {
            if ($k <= 19) {
                $c = trim(getContent('<?xml encoding="UTF-8">' . $v, $s[$rank]['second']['s'], true));
                if ($rank == 'click') {
                    $c = rtrim($c, '点击数');
                } elseif ($rank == 'tuijian') {
                    $c = rtrim($c, '推荐票');
                }

                $bookname = getContent('<?xml encoding="UTF-8">' . $v, $s[$rank]['second']['bookname'], true);
                $author = trim(getContent('<?xml encoding="UTF-8">' . $v, $s[$rank]['second']['author'], true));
                $book = Db::name('bookname_copy')->field('id')->where('bookname="' . $bookname . '" and author="' . $author . '"')->find();
                if ($book !== null) {
                    Db::name('bookname_copy')->where('id', $book['id'])->update([$rank => $c]);
                }
            }
        }
        if ($rank == 'click' and $page <= 10) {
            $nextpage = $page + 1;
            $msg = "第{$page}页数据导入完成，正在导入第{$nextpage}页数据";
            $this->success($msg, url('/api/rank/' . $rank . '/' . $nextpage), '', 1);
        } elseif ($rank == 'tuijian' and $page <= 15) {
            $nextpage = $page + 1;
            $msg = "第{$page}页数据导入完成，正在导入第{$nextpage}页数据";
            $this->success($msg, url('/api/rank/' . $rank . '/' . $nextpage), '', 1);
        }

    }

    //推送小说详情页
    public function baidu(int $page = 1) {
        return '推送已完成';
        $book = Db::name('bookname')->field('id,bookname')->page($page, 500)->select();
        if (empty($book)) {
            return 'over';
        }
        $urls = [];
        foreach ($book as $k => $v) {
            $urls[] = 'http://www.xiaojuan.fun/search/' . $v['bookname'] . '.html';
        }
        $api = 'http://data.zz.baidu.com/urls?site=www.xiaojuan.fun&token=O6mADHhmR90Pj25I';
        $ch = curl_init();
        $options = array(
            CURLOPT_URL            => $api,
            CURLOPT_POST           => true,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POSTFIELDS     => implode("\n", $urls),
            CURLOPT_HTTPHEADER     => array('Content-Type: text/plain'),
        );
        curl_setopt_array($ch, $options);
        $result = curl_exec($ch);
        $nextpage = $page + 1;
        $msg = "第{$page}页数据推送完成，返回值:" . $result;
        $this->success($msg, url('/api/baidu/' . $nextpage), '', 0.1);
    }

    //推送小说目录页
    public function baidu2(int $page = 1) {
        $book = Db::name('bookname')->field('id,bookname')->page($page, 500)->select();
        if (empty($book)) {
            return 'over';
        }
        $urls = [];
        foreach ($book as $k => $v) {
            $urls[] = 'http://www.xiaojuan.fun/catalog/' . $v['id'] . '.html';
        }
        $api = 'http://data.zz.baidu.com/urls?site=www.xiaojuan.fun&token=O6mADHhmR90Pj25I';
        $ch = curl_init();
        $options = array(
            CURLOPT_URL            => $api,
            CURLOPT_POST           => true,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POSTFIELDS     => implode("\n", $urls),
            CURLOPT_HTTPHEADER     => array('Content-Type: text/plain'),
        );
        curl_setopt_array($ch, $options);
        $result = curl_exec($ch);
        $nextpage = $page + 1;
        $msg = "第{$page}页数据推送完成，返回值:" . $result;
        $this->success($msg, url('/api/baidu2/' . $nextpage), '', 0.1);
    }

    //http://www.xiaojuan.fun/api/baidu3/3600.html
    public function baidu3(int $page = 1) {
        $book = Db::name('bookname')->field('id,bookname')->page($page, 2)->select();
        if (empty($book)) {
            return 'over';
        }
        $urls = [];
        foreach ($book as $k => $v) {
            $table = switchTableById2($v['id']);
            $c = Db::name($table)->where('bid', $v['id'])->select();
            foreach ($c as $s => $d) {
                $urls[] = 'http://www.xiaojuan.fun/content/' . $d['bid'] . '/' . $d['id'] . '.html';
            }
        }
        $result = baidu_curl($urls);
        $f = json_decode($result, true);
        if (isset($f['remain']) && $f['remain'] <= 0) {
            return '当天推送已限额';
        }
        $h['success'] = 0;
        if (isset($f['error']) && $f['error'] == 400) {
            $url = array_chunk($urls, 2000);
            foreach ($url as $g) {
                $result2 = baidu_curl($g);
                $h['success'] += count($g);
            }
            $result = json_encode($h);
        }

        $nextpage = $page + 1;
        $msg = "第{$page}页数据推送完成，返回值:" . $result;
        $this->success($msg, url('/api/baidu3/' . $nextpage), '', 0.1);
    }

    //采集内容
    public function spider_con(int $page = 1) {
        $table = 'con_10000';
        $books = Db::name($table)->where('status', 0)->page($page, 20)->select();
        $select = '//div[@id="content"]';
        foreach ($books as $k => $v) {
            $url = 'https://www.zwdu.com' . $v['url'];
            $html = curl_get($url);
            $content = getfield($html, $select);
            if ($content == '') {
                continue;
            }
            $content = ltrim($content, '<div id="content">');
            $content = rtrim($content, '</div>');
            //dump($content);
            $all = Db::name($table)->where('id', $v['id'])->update(['content' => addslashes($content), 'status' => 1]);
            if($all == 0){
                dump($v['id']);exit;
            }
        }
//        $nextpage = $page + 1;
//        $msg = "第{$page}页数据采集完成:";
//        $this->success($msg, url('/api/getcon/'. $nextpage), '', 0.1);
    }

    public function getnewid() {
        //dump(config('root_namespace'));
        $config = [
            'type'       => \Swoole\Database::TYPE_MYSQLi,
            'host'       => "47.98.133.199",
            'port'       => 3306,
            'dbms'       => 'mysql',
            'engine'     => 'MyISAM',
            'user'       => "root",
            'passwd'     => "xjf!)@(#*$&%^",
            'name'       => "xiaojuan",
            'charset'    => "utf8",
            'setname'    => true,
            'persistent' => false, //MySQL长连接
        ];
        define('DEBUG', 'on');
        define('WEBPATH', dirname(__DIR__));
        define("LIBPATH", __DIR__);
        if (PHP_OS == 'WINNT')
        {
            define("NL", "\r\n");
        }
        else
        {
            define("NL", "\n");
        }
        define("BL", "<br />" . NL);
        /**
         * 注册顶层命名空间到自动载入器
         */
        //\Swoole\Loader::addNameSpace('Swoole', __DIR__.'/Swoole');
        //spl_autoload_register('\\Swoole\\Loader::autoload');
        //$client = new \Swoole\Client\CoMySQL('master');
        $db = new \swoole_mysql();
        dump($db);exit;
        $client = new \Swoole\Async\MySQL($config);
        $book = $client->query('select * from book_bookname where id<10',function($result){
            $r = $result->fetchAll();
            dump($r);
        });
        dump($book);
//        $book = Db::name('bookname')->field('id')->where('id', '>', 29347)->select();
//        $r = [];
//        foreach ($book as $k => $v) {
//            $r[] = $v['id'];
//        }
//        $a = implode(',', $r);
//        echo ',' . $a;
    }

    public function send(int $page){
        //$table = switchTableById2($id);
        $book = Db::name('con_0')->field('id,bid,url')->where('id>=300000 and id<400000')->where('status', 0)->page($page, 2)->select();
        if(empty($book)){
            dump('当前数据已查完');exit;
        }else{
            $c = curl_get3('127.0.0.1:9501?data='.json_encode($book));
            if($c == '收到消息'){
                //服务端收到任务，继续发送新任务
                $nextpage = $page + 1;
                $msg = "第{$page}页数据采集完成:";
                $this->success($msg, url('/api/send/'.$nextpage), '', 0.5);
            }
        }
    }

    public function sendUpdate(int $page){
        //$table = switchTableById2($id);
        $c = curl_get3('127.0.0.1:9504?data=1');
        dump($c);
    }

    public $arr = [38, 89, 36, 119, 138, 175, 275, 280, 297, 300, 330, 348, 403, 445, 462, 501, 550, 560, 574, 585, 623, 668, 677, 711, 757, 800, 857, 963, 977, 1011, 1078, 1096, 1106, 1099, 1114, 1135, 1185, 1204, 1227, 1271, 1275, 1276, 1303, 1403, 1407, 1427, 1474, 1528, 1579, 1585, 1637, 1641, 1666, 1715, 1727, 1733, 1798, 1806, 1822, 1831, 1861, 1918, 1948, 2006, 2050, 2042, 2052, 2066, 2140, 2183, 2253, 2322, 2335, 2415, 2436, 2462, 2507, 2585, 2613, 2685, 2705, 2736, 2775, 2778, 2792, 2804, 2816, 2829, 2877, 2897, 2924, 2944, 2964, 2978, 2988, 2998, 3019, 3025, 3066, 3063, 3095, 3101, 3103, 3114, 3107, 3132, 3157, 3165, 3202, 3233, 3260, 3262, 3268, 3291, 3326, 3340, 3339, 3350, 3419, 3415, 3456, 3461, 3462, 3469, 3475, 3474, 3546, 3599, 3601, 3650, 3728, 3739, 3779, 3797, 3809, 3858, 3861, 3863, 3898, 3927, 3953, 4000, 4029, 4031, 4058, 4091, 4111, 4118, 4126, 4124, 4135, 4163, 4246, 4384, 4424, 4437, 4443, 4465, 4523, 4631, 4640, 4651, 4726, 4733, 4823, 4852, 4865, 4876, 4877, 4938, 4969, 4970, 4979, 5007, 5014, 5011, 5034, 5080, 5098, 5120, 5180, 5246, 5346, 5456, 5514, 5516, 5537, 5546, 5567, 5564, 5582, 5617, 5625, 5636, 5670, 5693, 5708, 5732, 5769, 5792, 5795, 5817, 5830, 5873, 5878, 5917, 5921, 5951, 5964, 5991, 6002, 5997, 5999, 6007, 6021, 6009, 6022, 6096, 6121, 6124, 6143, 6239, 6293, 6298, 6409, 6518, 6515, 6522, 6565, 6577, 6575, 6610, 6616, 6633, 6643, 6660, 6683, 6700, 6712, 6746, 6831, 6836, 6871, 6873, 6883, 6902, 6953, 6957, 6978, 7012, 7034, 7127, 7136, 7146, 7147, 7269, 7340, 7421, 7471, 7480, 7503, 7548, 7603, 7604, 7624, 7636, 7671, 7674, 7735, 7782, 7820, 7843, 7850, 7854, 7909, 7972, 8003, 8021, 8071, 8083, 8172, 8174, 8215, 8234, 8327, 8402, 8424, 8456, 8512, 8576, 8855, 8953, 8999, 9035, 9040, 9059, 9132, 9179, 9214, 9316, 9396, 9425, 9516, 9522, 9744, 9754, 9794, 9822, 10026, 10066, 10101, 10103, 10204, 10272, 10299, 10303, 10374, 10384, 10386, 10390, 10429, 10433, 10647, 10700, 10874, 10884, 10924, 10925, 10991, 11044, 11064, 11083, 11103, 11142, 11166, 11180, 11221, 11405, 11445, 11561, 11589, 11613, 11611, 11609, 11595, 11633, 11647, 11694, 11742, 11843, 11921, 12012, 12043, 12084, 12188, 12190, 12215, 12230, 12231, 12235, 12278, 12316, 12321, 12343, 12346, 12355, 12390, 12433, 12439, 12475, 12493, 12502, 12513, 12582, 12579, 12590, 12618, 12623, 12645, 12673, 12684, 12688, 12697, 12737, 12739, 12747, 12758, 12781, 12791, 12813, 12816, 12828, 12844, 12864, 12871, 12869, 12911, 12930, 12944, 12951, 12954, 12989, 13004, 13012, 13021, 13036, 13048, 13068, 13069, 13080, 13094, 13110, 13158, 13161, 13180, 13204, 13209, 13231, 13248, 13255, 13266, 13307, 13333, 13424, 13449, 13486, 13509, 13554, 13580, 13583, 13610, 13686, 13730, 13744, 13764, 13773, 13796, 13845, 13878, 13912, 13917, 13913, 13911, 13919, 13923, 13924, 13927, 13928, 13929, 13931, 13939, 13944, 13947, 13948, 13953, 13952, 13961, 13974, 13977, 13981, 13987, 13985, 13988, 13999, 14005, 14006, 14003, 14016, 14018, 14019, 14015, 14033, 14053, 14063, 14070, 14074, 14066, 14081, 14082, 14140, 14155, 14170, 14173, 14204, 14210, 14240, 14316, 14382, 14385, 14390, 14398, 14447, 14452, 14467, 14483, 14502, 14503, 14508, 14529, 14543, 14585, 14609, 14623, 14637, 14694, 14768, 14799, 14821, 14862, 14880, 14884, 14911, 14931, 14955, 14965, 14970, 14971, 15005, 15047, 15058, 15121, 15129, 15162, 15203, 15232, 15263, 15277, 15354, 15409, 15454, 15475, 15479, 15495, 15519, 15523, 15535, 15552, 15575, 15573, 15581, 15598, 15632, 15672, 15690, 15698, 15734, 15735, 15756, 15774, 15831, 15838, 15840, 15850, 15863, 15867, 15862, 15874, 15872, 15878, 15884, 15877, 15894, 15897, 15925, 15959, 15978, 15986, 15995, 16008, 16037, 16065, 16075, 16082, 16119, 16120, 16127, 16148, 16150, 16194, 16212, 16243, 16246, 16262, 16288, 16289, 16321, 16305, 16367, 16371, 16368, 16390, 16417, 16429, 16501, 16518, 16534, 16532, 16625, 16652, 16697, 16791, 16815, 16835, 16869, 16917, 16921, 16986, 17026, 17030, 17103, 17100, 17099, 17106, 17107, 17109, 17115, 17125, 17153, 17151, 17154, 17160, 17158, 17162, 17212, 17216, 17251, 17286, 17297, 17296, 17299, 17317, 17321, 17412, 17463, 17458, 17472, 17490, 17495, 17494, 17499, 17515, 17536, 17551, 17557, 17561, 17599, 17623, 17620, 17670, 17671, 17672, 17685, 17681, 17786, 17831, 17857, 17859, 17883, 17908, 17964, 18038, 18061, 18132, 18143, 18153, 18162, 18164, 18180, 18181, 18305, 18315, 18345, 18423, 18442, 18468, 18502, 18517, 18522, 18590, 18589, 18601, 18617, 18660, 18665, 18695, 18707, 18722, 18732, 18775, 18803, 18816, 18823, 18838, 18874, 18899, 18960, 18970, 18974, 18976, 18986, 18981, 18991, 18990, 18992, 18996, 18999, 19043, 19056, 19060, 19066, 19084, 19115, 19120, 19122, 19124, 19163, 19165, 19221, 19229, 19234, 19242, 19239, 19248, 19264, 19272, 19273, 19330, 19339, 19387, 19397, 19476, 19504, 19512, 19556, 19569, 19572, 19578, 19595, 19616, 19610, 19634, 19637, 19641, 19647, 19666, 19692, 19771, 19799, 19832, 19862, 19865, 19889, 19916, 19925, 19950, 19981, 19996, 20029, 20040, 20119, 20123, 20171, 20191, 20196, 20206, 20256, 20292, 20299, 20300, 20314, 20323, 20335, 20340, 20351, 20356, 20383, 20403, 20414, 20422, 20425, 20452, 20460, 20479, 20489, 20491, 20496, 20533, 20537, 20551, 20548, 20554, 20559, 20572, 20574, 20575, 20577, 20583, 20596, 20606, 20602, 20608, 20620, 20621, 20664, 20661, 20667, 20675, 20680, 20703, 20717, 20724, 20731, 20734, 20732, 20750, 20780, 20781, 20801, 20806, 20814, 20825, 20826, 20828, 20832, 20840, 20849, 20848, 20855, 20861, 20862, 20868, 20870, 20873, 20875, 20876, 20883, 20889, 20916, 20920, 20931, 20935, 20947, 20954, 20957, 20960, 20962, 20964, 20971, 20968, 20973, 20979, 20981, 20978, 20987, 20997, 20999, 21000, 21004, 21009, 21002, 21003, 21007, 21008, 21011, 21015, 21028, 21036, 21043, 21044, 21059, 21065, 21069, 21066, 21075, 21079, 21077, 21083, 21086, 21084, 21092, 21093, 21099, 21101, 21105, 21114, 21118, 21123, 21125, 21126, 21146, 21149, 21158, 21188, 21208, 21211, 21212, 21215, 21216, 21229, 21234, 21254, 21276, 21284, 21288, 21294, 21298, 21314, 21317, 21323, 21327, 21344, 21363, 21369, 21374, 21377, 21385, 21386, 21391, 21395, 21399, 21400, 21402, 21425, 21422, 21432, 21438, 21439, 21451, 21473, 21503, 21505, 21507, 21517, 21526, 21532, 21534, 21537, 21547, 21546, 21561, 21563, 21569, 21575, 21574, 21581, 21590, 21598, 21599, 21608, 21606, 21604, 21622, 21620, 21627, 21635, 21637, 21640, 21656, 21659, 21667, 21666, 21676, 21665, 21678, 21668, 21683, 21702, 21704, 21706, 21710, 21728, 21724, 21730, 21751, 21761, 21766, 21768, 21776, 21791, 21797, 21805, 21819, 21833, 21834, 21835, 21836, 21841, 21845, 21844, 21862, 21863, 21895, 21893, 21892, 21885, 21902, 21905, 21907, 21925, 21931, 21929, 21944, 21957, 21962, 21959, 21967, 21965, 21972, 21971, 21987, 21988, 22004, 22018, 22027, 22028, 22033, 22039, 22051, 22054, 22069, 22068, 22076, 22085, 22099, 22108, 22106, 22111, 22110, 22120, 22124, 22125, 22137, 22130, 22144, 22146, 22150, 22145, 22162, 22202, 22204, 22207, 22206, 22211, 22213, 22217, 22219, 22215, 22214, 22223, 22227, 22229, 22231, 22233, 22235, 22234, 22239, 22248, 22254, 22257, 22272, 22271, 22280, 22287, 22291, 22313, 22316, 22325, 22320, 22328, 22334, 22331, 22337, 22341, 22339, 22346, 22351, 22354, 22362, 22364, 22373, 22372, 22376, 22383, 22404, 22406, 22409, 22415, 22423, 22437, 22441, 22445, 22449, 22462, 22466, 22473, 22479, 22484, 22493, 22496, 22499, 22501, 22507, 22524, 22526, 22525, 22532, 22540, 22541, 22547, 22550, 22560, 22567, 22576, 22585, 22589, 22588, 22591, 22592, 22579, 22602, 22605, 22606, 22608, 22607, 22619, 22613, 22625, 22630, 22631, 22632, 22643, 22649, 22655, 22659, 22664, 22667, 22669, 22670, 22674, 22677, 22676, 22681, 22682, 22694, 22698, 22702, 22710, 22720, 22725, 22729, 22731, 22747, 22749, 22750, 22757, 22755, 22767, 22774, 22785, 22784, 22786, 22788, 22796, 22800, 22806, 22807, 22820, 22832, 22844, 22848, 22862, 22870, 22872, 22874, 22878, 22886, 22891, 22896, 22897, 22906, 22924, 22922, 22928, 22935, 22933, 22944, 22940, 22949, 22948, 22954, 22959, 22969, 22971, 22977, 22982, 22992, 23000, 23001, 22999, 23010, 23015, 23027, 23038, 23043, 23046, 23045, 23048, 23050, 23055, 23060, 23066, 23063, 23067, 23069, 23072, 23075, 23079, 23082, 23081, 23084, 23090, 23102, 23110, 23111, 23112, 23115, 23117, 23119, 23121, 23127, 23138, 23140, 23145, 23146, 23147, 23150, 23154, 23153, 23157, 23159, 23162, 23165, 23163, 23164, 23171, 23178, 23183, 23185, 23189, 23190, 23202, 23213, 23226, 23229, 23237, 23240, 23241, 23246, 23255, 23256, 23257, 23261, 23262, 23281, 23293, 23292, 23294, 23297, 23309, 23310, 23316, 23319, 23323, 23321, 23326, 23328, 23332, 23338, 23340, 23341, 23343, 23346, 23348, 23355, 23357, 23370, 23371, 23378, 23380, 23383, 23386, 23395, 23406, 23411, 23416, 23418, 23421, 23422, 23427, 23431, 23439, 23442, 23440, 23446, 23452, 23460, 23462, 23469, 23470, 23473, 23472, 23476, 23479, 23482, 23484, 23494, 23498, 23502, 23499, 23503, 23507, 23508, 23512, 23520, 23529, 23533, 23541, 23547, 23554, 23556, 23563, 23564, 23567, 23568, 23575, 23576, 23577, 23579, 23583, 23586, 23587, 23593, 23594, 23596, 23600, 23606, 23611, 23620, 23635, 23640, 23642, 23650, 23649, 23653, 23655, 23654, 23657, 23652, 23660, 23658, 23664, 23674, 23680, 23683, 23691, 23692, 23689, 23694, 23696, 23695, 23697, 23699, 23698, 23704, 23700, 23707, 23710, 23706, 23709, 23713, 23716, 23718, 23720, 23715, 23723, 23724, 23717, 23728, 23736, 23740, 23739, 23742, 23743, 23749, 23754, 23766, 23773, 23774, 23775, 23771, 23776, 23778, 23790, 23795, 23797, 23798, 23804, 23805, 23813, 23819, 23822, 23824, 23829, 23835, 23837, 23838, 23841, 23844, 23839, 23850, 23849, 23851, 23853, 23854, 23855, 23858, 23861, 23866, 23867, 23871, 23874, 23877, 23878, 23881, 23891, 23905, 23908, 23912, 23909, 23913, 23916, 23918, 23920, 23919, 23923, 23927, 23929, 23936, 23939, 23943, 23949, 23954, 23961, 23967, 23969, 23975, 23977, 23979, 23980, 23986, 23987, 23984, 23990, 23998, 24008, 24010, 24017, 24019, 24020, 24016, 24027, 24031, 24034, 24037, 24043, 24045, 24048, 24053, 24059, 24060, 24066, 24068, 24071, 24073, 24075, 24074, 24076, 24077, 24079, 24091, 24096, 24097, 24100, 24101, 24107, 24108, 24121, 24119, 24122, 24123, 24131, 24135, 24143, 24144, 24146, 24149, 24154, 24159, 24164, 24166, 24170, 24171, 24173, 24169, 24180, 24183, 24194, 24199, 24202, 24204, 24203, 24206, 24207, 24218, 24217, 24220, 24222, 24224, 24230, 24231, 24232, 24233, 24234, 24235, 24237, 24243, 24244, 24246, 24249, 24252, 24251, 24256, 24257, 24259, 24261, 24267, 24275, 24280, 24284, 24290, 24294, 24297, 24299, 24301, 24300, 24303, 24305, 24307, 24310, 24312, 24317, 24323, 24324, 24327, 24334, 24338, 24339, 24340, 24343, 24344, 24350, 24361, 24362, 24366, 24370, 24369, 24372, 24373, 24374, 24379, 24382, 24383, 24385, 24384, 24387, 24388, 24396, 24398, 24402, 24408, 24407, 24425, 24431, 24429, 24433, 24436, 24435, 24438, 24442, 24444, 24443, 24453, 24454, 24455, 24456, 24463, 24465, 24469, 24471, 24479, 24480, 24494, 24493, 24492, 24495, 24498, 24502, 24503, 24501, 24504, 24509, 24507, 24511, 24514, 24520, 24523, 24521, 24524, 24527, 24525, 24526, 24531, 24532, 24534, 24539, 24546, 24547, 24550, 24559, 24562, 24561, 24569, 24575, 24577, 24574, 24582, 24584, 24585, 24587, 24586, 24591, 24597, 24598, 24599, 24608, 24610, 24615, 24616, 24624, 24627, 24629, 24628, 24634, 24639, 24644, 24647, 24652, 24653, 24654, 24655, 24661, 24665, 24666, 24662, 24668, 24669, 24673, 24671, 24682, 24681, 24684, 24690, 24691, 24693, 24697, 24703, 24701, 24702, 24705, 24706, 24714, 24715, 24717, 24722, 24727, 24733, 24744, 24749, 24751, 24752, 24755, 24757, 24758, 24759, 24760, 24768, 24777, 24776, 24778, 24780, 24782, 24783, 24786, 24789, 24790, 24791, 24795, 24797, 24798, 24806, 24807, 24808, 24814, 24817, 24818, 24819, 24824, 24827, 24828, 24829, 24830, 24832, 24836, 24837, 24838, 24842, 24840, 24843, 24851, 24850, 24858, 24860, 24859, 24863, 24865, 24871, 24872, 24876, 24877, 24875, 24880, 24887, 24888, 24890, 24893, 24894, 24895, 24892, 24898, 24903, 24904, 24901, 24905, 24906, 24907, 24908, 24911, 24914, 24912, 24918, 24919, 24921, 24922, 24920, 24928, 24931, 24929, 24934, 24935, 24936, 24939, 24937, 24944, 24951, 24947, 24953, 24954, 24949, 24959, 24956, 24967, 24972, 24976, 24978, 24981, 24988, 24987, 24990, 24991, 24999, 24998, 25000, 25002, 25005, 25009, 25008, 25012, 25021, 25022, 25023, 25024, 25026, 25032, 25035, 25041, 25042, 25047, 25049, 25050, 25055, 25051, 25058, 25061, 25060, 25063, 25059, 25065, 25072, 25075, 25077, 25076, 25078, 25079, 25080, 25081, 25082, 25085, 25086, 25087, 25090, 25091, 25089, 25096, 25098, 25100, 25012, 25017, 25026, 25055, 25101, 25103, 25107, 25111, 25108, 25113, 25116, 25119, 25125, 25126, 25127, 25129, 25131, 25133, 25138, 25137, 25132, 25141, 25144, 25146, 25145, 25149, 25150, 25154, 25158, 25153, 25160, 25165, 25166, 25162, 25168, 25170, 25172, 25174, 25173, 25179, 25178, 25180, 25181, 25184, 25185, 25188, 25195, 25197, 25198, 25199, 25200, 25201, 25207, 25208, 25213, 25215, 25218, 25219, 25224, 25222, 25226, 25230, 25233, 25232, 25234, 25236, 25238, 25247, 25251, 25252, 25255, 25262, 25260, 25265, 25267, 25270, 25272, 25274, 25278, 25279, 25283, 25282, 25291, 25294, 25296, 25297, 25299, 25300, 25313, 25314, 25316, 25320, 25322, 25321, 25326, 25325, 25333, 25335, 25338, 25339, 25342, 25337, 25344, 25351, 25353, 25355, 25354, 25358, 25359, 25362, 25361, 25364, 25369, 25365, 25368, 25366, 25372, 25370, 25367, 25371, 25374, 25376, 25379, 25378, 25380, 25382, 25385, 25392, 25391, 25395, 25397, 25399, 25404, 25407, 25409, 25408, 25413, 25414, 25417, 25423, 25425, 25428, 25432, 25435, 25437, 25439, 25441, 25444, 25443, 25446, 25447, 25449, 25451, 25454, 25456, 25463, 25464, 25465, 25466, 25469, 25468, 25467, 25475, 25477, 25484, 25489, 25492, 25493, 25494, 25500, 25502, 25503, 25505, 25511, 25513, 25519, 25521, 25524, 25516, 25522, 25523, 25525, 25526, 25528, 25529, 25531, 25539, 25536, 25542, 25543, 25548, 25551, 25552, 25554, 25555, 25560, 25562, 25561, 25557, 25563, 25558, 25564, 25565, 25569, 25570, 25572, 25571, 25576, 25578, 25589, 25592, 25593, 25596, 25602, 25599, 25600, 25603, 25607, 25611, 25612, 25615, 25616, 25617, 25619, 25618, 25620, 25623, 25624, 25626, 25630, 25635, 25638, 25637, 25640, 25627, 25643, 25642, 25644, 25646, 25647, 25648, 25650, 25651, 25654, 25652, 25649, 25657, 25658, 25659, 25661, 25662, 25669, 25670, 25674, 25673, 25671, 25675, 25677, 25679, 25681, 25680, 25683, 25688, 25690, 25695, 25697, 25698, 25699, 25700, 25702, 25703, 25705, 25706, 25708, 25704, 25711, 25713, 25717, 25716, 25719, 25714, 25721, 25722, 25715, 25723, 25725, 25728, 25727, 25732, 25730, 25729, 25735, 25731, 25740, 25743, 25747, 25746, 25749, 25752, 25751, 25754, 25757, 25763, 25768, 25769, 25770, 25771, 25772, 25775, 25774, 25773, 25776, 25785, 25787, 25788, 25792, 25793, 25800, 25801, 25802, 25803, 25806, 25809, 25811, 25810, 25807, 25816, 25814, 25805, 25817, 25818, 25823, 25825, 25827, 25828, 25830, 25831, 25835, 25834, 25837, 25842, 25843, 25848, 25853, 25852, 25854, 25857, 25859, 25861, 25863, 25865, 25870, 25869, 25873, 25877, 25885, 25888, 25889, 25892, 25897, 25895, 25898, 25899, 25901, 25902, 25904, 25906, 25905, 25908, 25907, 25909, 25913, 25915, 25916, 25919, 25926, 25929, 25931, 25932, 25933, 25934, 25940, 25939, 25943, 25944, 25946, 25945, 25947, 25948, 25951, 25956, 25954, 25957, 25958, 25961, 25960, 25962, 25964, 25965, 25966, 25967, 25970, 25969, 25973, 25977, 25978, 25980, 25984, 25986, 25988, 25989, 25990, 25991, 25996, 25997, 26000, 26001, 26003, 26006, 26005, 26009, 26011, 26010, 26013, 26012, 26015, 26018, 26021, 26019, 26023, 26024, 26025, 26028, 26027, 26037, 26044, 26045, 26046, 26051, 26056, 26058, 26059, 26060, 26061, 26062, 26063, 26064, 26066, 26068, 26071, 26070, 26078, 26077, 26079, 26082, 26080, 26087, 26086, 26090, 26094, 26096, 26099, 26098, 26100, 26102, 26110, 26111, 26112, 26113, 26116, 26117, 26115, 26118, 26119, 26121, 26127, 26134, 26136, 26137, 26142, 26139, 26140, 26146, 26150, 26154, 26157, 26158, 26161, 26162, 26168, 26169, 26164, 26175, 26186, 26191, 26193, 26192, 26197, 26200, 26201, 26202, 26205, 26208, 26212, 26214, 26215, 26218, 26220, 26225, 26234, 26236, 26243, 26245, 26246, 26247, 26254, 26258, 26260, 26262, 26263, 26268, 26269, 26270, 26272, 26277, 26284, 26285, 26290, 26294, 26291, 26302, 26303, 26312, 26313, 26314, 26315, 26317, 26316, 26318, 26321, 26323, 26322, 26324, 26325, 26326, 26331, 26336, 26339, 26340, 26341, 26349, 26347, 26351, 26354, 26358, 26360, 26359, 26361, 26362, 26364, 26365, 26368, 26367, 26366, 26369, 26371, 26372, 26373, 26376, 26377, 26384, 26391, 26392, 26400, 26406, 26408, 26410, 26409, 26415, 26418, 26420, 26419, 26427, 26429, 26428, 26430, 26432, 26435, 26440, 26444, 26451, 26448, 26456, 26458, 26459, 26460, 26463, 26470, 26472, 26476, 26480, 26481, 26482, 26484, 26485, 26490, 26492, 26493, 26496, 26497, 26498, 26499, 26500, 26501, 26508, 26505, 26506, 26509, 26507, 26513, 26514, 26519, 26521, 26522, 26524, 26525, 26526, 26527, 26529, 26528, 26531, 26533, 26536, 26537, 26539, 26547, 26546, 26548, 26549, 26552, 26558, 26559, 26564, 26566, 26570, 26569, 26579, 26580, 26581, 26583, 26584, 26589, 26590, 26591, 26592, 26593, 26596, 26597, 26600, 26603, 26605, 26609, 26611, 26606, 26613, 26615, 26616, 26617, 26619, 26618, 26620, 26621, 26622, 26623, 26625, 26627, 26629, 26632, 26633, 26637, 26638, 26640, 26641, 26642, 26645, 26646, 26647, 26648, 26651, 26654, 26653, 26656, 26657, 26658, 26660, 26662, 26663, 26669, 26673, 26676, 26677, 26679, 26680, 26681, 26683, 26688, 26691, 26693, 26694, 26697, 26702, 26703, 26709, 26708, 26710, 26711, 26713, 26712, 26714, 26719, 26720, 26722, 26724, 26729, 26736, 26739, 26742, 26746, 26747, 26755, 26756, 26757, 26760, 26761, 26762, 26764, 26765, 26768, 26769, 26772, 26771, 26775, 26773, 26774, 26776, 26778, 26779, 26781, 26783, 26785, 26787, 26786, 26788, 26789, 26791, 26797, 26801, 26804, 26805, 26806, 26808, 26809, 26813, 26815, 26814, 26819, 26821, 26820, 26822, 26823, 26825, 26826, 26827, 26829, 26828, 26831, 26832, 26835, 26844, 26843, 26848, 26852, 26851, 26853, 26854, 26856, 26857, 26859, 26860, 26865, 26864, 26867, 26868, 26870, 26869, 26871, 26872, 26873, 26874, 26877, 26879, 26878, 26882, 26883, 26885, 26888, 26896, 26900, 26901, 26903, 26904, 26905, 26906, 26909, 26913, 26924, 26925, 26926, 26930, 26935, 26936, 26937, 26938, 26943, 26944, 26942, 26946, 26947, 26948, 26950, 26951, 26954, 26957, 26960, 26958, 26956, 26963, 26965, 26966, 26967, 26969, 26970, 26975, 26976, 26977, 26978, 26979, 26981, 26987, 26988, 26989, 26990, 26991, 26997, 26996, 26998, 26999, 27003, 27005, 27006, 27008, 27009, 27011, 27018, 27019, 27022, 27024, 27026, 27033, 27036, 27039, 27040, 27043, 27047, 27048, 27050, 27052, 27053, 27054, 27055, 27059, 27060, 27061, 27063, 27065, 27067, 27069, 27068, 27070, 27073, 27076, 27077, 27079, 27083, 27084, 27085, 27086, 27092, 27093, 27095, 27097, 27101, 27104, 27102, 27106, 27108, 27115, 27112, 27113, 27117, 27121, 27120, 27122, 27127, 27129, 27132, 27135, 27134, 27136, 27137, 27138, 27140, 27141, 27142, 27143, 27146, 27147, 27149, 27150, 27151, 27152, 27155, 27156, 27157, 27158, 27160, 27162, 27159, 27164, 27168, 27178, 27182, 27183, 27185, 27188, 27189, 27192, 27191, 27194, 27196, 27197, 27195, 27200, 27203, 27205, 27208, 27207, 27206, 27210, 27211, 27213, 27214, 27212, 27215, 27216, 27218, 27217, 27222, 27221, 27223, 27224, 27227, 27228, 27229, 27232, 27233, 27234, 27235, 27237, 27238, 27240, 27239, 27242, 27248, 27252, 27253, 27257, 27260, 27259, 27267, 27266, 27265, 27270, 27271, 27276, 27280, 27278, 27283, 27285, 27286, 27287, 27279, 27291, 27290, 27292, 27293, 27295, 27294, 27297, 27296, 27299, 27302, 27304, 27303, 27305, 27306, 27307, 27309, 27312, 27315, 27318, 27320, 27322, 27325, 27328, 27327, 27330, 27333, 27339, 27340, 27343, 27342, 27344, 27346, 27347, 27348, 27349, 27350, 27353, 27356, 27357, 27359, 27360, 27364, 27362, 27365, 27366, 27367, 27368, 27371, 27373, 27376, 27380, 27381, 27385, 27386, 27388, 27387, 27393, 27397, 27398, 27399, 27401, 27403, 27402, 27404, 27405, 27407, 27408, 27411, 27414, 27416, 27417, 27423, 27428, 27429, 27431, 27432, 27433, 27434, 27436, 27437, 27439, 27440, 27441, 27443, 27446, 27450, 27456, 27458, 27462, 27466, 27467, 27468, 27472, 27475, 27474, 27476, 27479, 27481, 27483, 27485, 27484, 27486, 27488, 27489, 27491, 27492, 27493, 27496, 27497, 27499, 27502, 27503, 27504, 27505, 27511, 27513, 27514, 27516, 27517, 27518, 27520, 27523, 27521, 27522, 27524, 27528, 27533, 27534, 27536, 27543, 27544, 27545, 27546, 27547, 27550, 27555, 27553, 27556, 27557, 27558, 27559, 27562, 27563, 27566, 27565, 27564, 27572, 27576, 27574, 27579, 27582, 27583, 27584, 27588, 27589, 27593, 27592, 27590, 27599, 27600, 27601, 27603, 27605, 27604, 27607, 27608, 27609, 27610, 27613, 27614, 27616, 27617, 27618, 27623, 27622, 27624, 27631, 27632, 27633, 27635, 27636, 27639, 27640, 27648, 27651, 27653, 27654, 27655, 27658, 27656, 27659, 27663, 27662, 27666, 27667, 27670, 27671, 27674, 27678, 27681, 27683, 27689, 27688, 27692, 27691, 27696, 27698, 27700, 27702, 27704, 27708, 27706, 27709, 27710, 27712, 27711, 27713, 27714, 27716, 27715, 27717, 27718, 27721, 27723, 27724, 27722, 27727, 27729, 27731, 27732, 27734, 27740, 27743, 27745, 27746, 27747, 27748, 27749, 27750, 27753, 27754, 27755, 27756, 27759, 27761, 27763, 27764, 27767, 27765, 27768, 27769, 27771, 27773, 27772, 27775, 27776, 27779, 27778, 27777, 27782, 27781, 27784, 27786, 27787, 27789, 27791, 27795, 27796, 27797, 27803, 27801, 27804, 27805, 27806, 27808, 27816, 27818, 27819, 27822, 27821, 27824, 27829, 27830, 27832, 27833, 27834, 27837, 27836, 27839, 27842, 27847, 27850, 27851, 27857, 27859, 27862, 27863, 27864, 27871, 27870, 27873, 27876, 27880, 27884, 27888, 27889, 27891, 27894, 27893, 27895, 27898, 27899, 27901, 27900, 27905, 27910, 27911, 27913, 27920, 27917, 27916, 27918, 27919, 27924, 27925, 27928, 27927, 27931, 27929, 27935, 27933, 27934, 27936, 27937, 27939, 27943, 27941, 27944, 27946, 27948, 27950, 27952, 27953, 27954, 27956, 27957, 27958, 27959, 27960, 27963, 27964, 27966, 27968, 27969, 27971, 27972, 27973, 27977, 27976, 27978, 27980, 27982, 27984, 27983, 27986, 27987, 27985, 27988, 27989, 27990, 27991, 27994, 27996, 27999, 28000, 28004, 28005, 28006, 28007, 28008, 28010, 28011, 28013, 28014, 28016, 28017, 28018, 28019, 28022, 28024, 28025, 28028, 28031, 28034, 28036, 28038, 28040, 28041, 28043, 28044, 28045, 28052, 28050, 28053, 28055, 28056, 28057, 28058, 28062, 28060, 28061, 28063, 28065, 28069, 28070, 28076, 28075, 28077, 28078, 28079, 28081, 28085, 28086, 28087, 28098, 28097, 28102, 28104, 28105, 28106, 28108, 28109, 28112, 28111, 28116, 28115, 28114, 28118, 28120, 28122, 28121, 28123, 28124, 28127, 28126, 28129, 28130, 28131, 28132, 28133, 28135, 28134, 28136, 28137, 28140, 28143, 28146, 28149, 28150, 28151, 28158, 28159, 28161, 28164, 28166, 28165, 28168, 28169, 28172, 28173, 28174, 28176, 28177, 28178, 28160, 28180, 28181, 28182, 28184, 28185, 28186, 28188, 28190, 28192, 28193, 28194, 28198, 28199, 28201, 28204, 28205, 28206, 28208, 28213, 28215, 28217, 28218, 28219, 28221, 28226, 28225, 28227, 28228, 28229, 28230, 28231, 28232, 28233, 28234, 28235, 28238, 28242, 28243, 28244, 28247, 28248, 28249, 28252, 28254, 28258, 28264, 28265, 28266, 28267, 28268, 28272, 28273, 28274, 28275, 28277, 28279, 28283, 28287, 28288, 28289, 28292, 28293, 28294, 28295, 28297, 28299, 28301, 28302, 28303, 28306, 28308, 28309, 28307, 28311, 28313, 28317, 28318, 28321, 28324, 28326, 28328, 28329, 28331, 28337, 28340, 28339, 28341, 28342, 28343, 28348, 28349, 28351, 28350, 28353, 28354, 28355, 28356, 28358, 28357, 28360, 28362, 28364, 28365, 28367, 28363, 28372, 28373, 28374, 28375, 28379, 28380, 28381, 28385, 28382, 28389, 28387, 28392, 28393, 28388, 28395, 28398, 28396, 28397, 28399, 28403, 28401, 28406, 28402, 28407, 28410, 28404, 28413, 28411, 28414, 28405, 28419, 28427, 28428, 28431, 28429, 28432, 28433, 28434, 28436, 28438, 28440, 28437, 28444, 28446, 28448, 28447, 28449, 28451, 28452, 28445, 28454, 28456, 28455, 28457, 28460, 28461, 28459, 28463, 28464, 28467, 28469, 28475, 28476, 28477, 28478, 28479, 28480, 28481, 28483, 28485, 28487, 28486, 28488, 28489, 28491, 28492, 28493, 28495, 28496, 28497, 28498, 28499, 28500, 28501, 28502, 28504, 28506, 28507, 28509, 28510, 28511, 28513, 28521, 28522, 28524, 28525, 28526, 28527, 28528, 28529, 28531, 28537, 28540, 28539, 28547, 28546, 28548, 28552, 28550, 28557, 28558, 28561, 28562, 28563, 28564, 28565, 28568, 28567, 28570, 28572, 28574, 28575, 28576, 28578, 28580, 28579, 28583, 28585, 28586, 28587, 28588, 28590, 28589, 28593, 28592, 28596, 28597, 28601, 28602, 28605, 28604, 28606, 28607, 28608, 28609, 28610, 28611, 28613, 28612, 28615, 28617, 28616, 28618, 28619, 28620, 28622, 28621, 28623, 28624, 28625, 28626, 28627, 28629, 28630, 28631, 28632, 28637, 28638, 28639, 28641, 28643, 28646, 28647, 28649, 28650, 28653, 28652, 28654, 28656, 28657, 28658, 28661, 28663, 28664, 28665, 28666, 28667, 28668, 28669, 28670, 28671, 28672, 28674, 28676, 28677, 28680, 28683, 28684, 28682, 28686, 28687, 28688, 28690, 28692, 28694, 28695, 28696, 28697, 28699, 28698, 28700, 28703, 28701, 28702, 28705, 28707, 28708, 28710, 28711, 28715, 28716, 28717, 28718, 28719, 28720, 28723, 28722, 28721, 28724, 28725, 28726, 28729, 28731, 28734, 28735, 28736, 28738, 28740, 28743, 28744, 28741, 28746, 28748, 28747, 28751, 28753, 28755, 28756, 28757, 28759, 28764, 28767, 28768, 28769, 28775, 28776, 28774, 28777, 28778, 28780, 28779, 28782, 28783, 28785, 28784, 28788, 28787, 28790, 28791, 28792, 28795, 28794, 28796, 28797, 28798, 28801, 28802, 28803, 28804, 28805, 28808, 28810, 28811, 28812, 28813, 28814, 28816, 28818, 28820, 28823, 28826, 28827, 28828, 28830, 28832, 28833, 28834, 28835, 28836, 28837, 28838, 28841, 28842, 28840, 28839, 28843, 28844, 28848, 28851, 28852, 28854, 28856, 28855, 28857, 28861, 28862, 28864, 28863, 28865, 28866, 28868, 28867, 28869, 28870, 28871, 28872, 28878, 28880, 28877, 28881, 28882, 28883, 28886, 28887, 28888, 28889, 28890, 28891, 28892, 28893, 28894, 28896, 28897, 28898, 28899, 28901, 28903, 28902, 28904, 28905, 28906, 28909, 28910, 28907, 28913, 28915, 28917, 28918, 28919, 28920, 28921, 28923, 28924, 28925, 28927, 28929, 28930, 28932, 28933, 28935, 28936, 28934, 28937, 28938, 28939, 28940, 28941, 28942, 28943, 28945, 28947, 28948, 28944, 28951, 28952, 28953, 28949, 28956, 28954, 28955, 28957, 28958, 28960, 28961, 28962, 28963, 28965, 28966, 28967, 28971, 28970, 28973, 28975, 28976, 28977, 28980, 28979, 28982, 28984, 28983, 28986, 28987, 28989, 28990, 28991, 28993, 28994, 28992, 28996, 28997, 28998, 29000, 29003, 29004, 29006, 29009, 29010, 29011, 29013, 29014, 29016, 29017, 29018, 29020, 29021, 29022, 29023, 29024, 29025, 29026, 29027, 29029, 29031, 29032, 29033, 29034, 29036, 29037, 29039, 29040, 29041, 29043, 29045, 29044, 29048, 29047, 29049, 29050, 29051, 29054, 29057, 29056, 29058, 29060, 29059, 29061, 29063, 29064, 29065, 29066, 29067, 29068, 29069, 29070, 29071, 29072, 29073, 29074, 29075, 29076, 29078, 29079, 29080, 29087, 29090, 29094, 29095, 29096, 29097, 29098, 29100, 29103, 29104, 29106, 29107, 29108, 29109, 29110, 29112, 29114, 29116, 29118, 29119, 29120, 29122, 29124, 29121, 29126, 29128, 29129, 29130, 29132, 29131, 29134, 29135, 29136, 29137, 29139, 29140, 29141, 29142, 29143, 29144, 29146, 29147, 29148, 29149, 29152, 29153, 29151, 29155, 29154, 29156, 29158, 29159, 29157, 29160, 29161, 29162, 29164, 29163, 29165, 29166, 29168, 29169, 29170, 29171, 29172, 29174, 29176, 29177, 29179, 29178, 29180, 29181, 29183, 29184, 29185, 29186, 29187, 29190, 29191, 29192, 29189, 29188, 29193, 29194, 29195, 29196, 29197, 29198, 29200, 29199, 29202, 29203, 29204, 29201, 29205, 29206, 29207, 29208, 29209, 29211, 29210, 29214, 29212, 29213, 29215, 29217, 29216, 29218, 29219, 29220, 29221, 29223, 29225, 29226, 29227, 29228, 29229, 29230, 29231, 29232, 29233, 29234, 29236, 29235, 29237, 29239, 29241, 29238, 29240, 29242, 29243, 29244, 29247, 29246, 29245, 29248, 29249, 29250, 29251, 29252, 29253, 29255, 29256, 29257, 29260, 29261, 29264, 29263, 29265, 29267, 29266, 29268, 29269, 29270, 29272, 29274, 29273, 29275, 29277, 29276, 29278, 29280, 29281, 29279, 29282, 29283, 29284, 29287, 29289, 29290, 29291, 29294, 29295, 29296, 29297, 29298, 29299, 29300, 29301, 29302, 29303, 29304, 29305, 29307, 29306, 29308, 29309, 29310, 29311, 29312, 29313, 29315, 29314, 29316, 29317, 29318, 29320, 29322, 29321, 29319, 29324, 29325, 29323, 29327, 29330, 29329, 29328, 29331, 29332, 29333, 29334, 29335, 29336, 29337, 29338, 29339, 29340, 29341, 29342, 29343, 29344, 29345, 29347, 29348, 29349, 29350, 29351, 29352, 29353, 29354, 29355, 29356, 29357, 29358, 29359, 29360, 29361, 29362, 29363, 29364, 29365, 29366, 29367, 29368, 29369, 29370, 29371, 29372, 29373, 29374, 29375, 29376, 29377, 29378, 29379, 29380, 29381, 29382, 29383, 29384, 29385, 29386, 29387, 29388, 29389, 29390, 29391, 29392, 29393, 29394, 29395, 29396, 29397, 29398, 29399, 29400, 29401, 29402, 29403, 29404, 29405, 29406, 29407, 29408, 29409, 29410, 29411, 29412, 29413, 29414, 29415, 29416, 29417, 29418, 29419, 29420, 29421, 29422, 29423, 29424, 29425, 29426, 29427, 29428, 29429, 29430, 29431, 29432, 29433, 29434, 29435, 29436, 29437, 29438, 29439, 29440, 29441, 29442, 29443, 29444, 29445, 29446, 29447, 29448, 29449, 29450, 29451, 29452, 29453, 29454, 29455, 29456, 29457, 29458, 29459, 29460, 29461, 29462, 29463, 29464, 29465, 29466, 29467, 29468, 29469, 29470, 29471, 29472, 29473, 29474, 29475, 29476, 29477, 29478, 29479, 29480, 29481, 29482, 29483, 29484, 29485, 29486, 29487, 29488, 29489, 29490, 29491, 29492, 29493, 29494, 29495, 29496, 29497, 29498, 29499, 29500, 29501, 29502, 29503, 29504, 29505, 29506, 29507, 29508, 29509, 29510, 29511, 29512, 29513, 29514, 29515, 29516, 29517, 29518, 29519, 29520, 29521, 29522, 29523, 29524, 29525, 29526, 29527, 29528, 29529, 29530, 29531, 29532, 29533, 29534, 29535, 29536, 29537, 29538, 29539, 29540, 29541, 29542, 29543, 29544, 29545, 29546, 29547, 29548, 29549, 29550, 29551, 29552, 29553, 29554, 29555, 29556, 29557, 29558, 29559, 29560, 29561, 29562, 29563, 29564, 29565, 29566, 29567, 29568, 29569, 29570, 29571, 29572, 29573, 29574, 29575, 29576, 29577, 29578, 29579, 29580, 29581, 29582, 29583, 29584, 29585, 29586, 29587, 29588, 29589, 29590, 29591, 29592, 29593, 29594, 29595, 29596, 29597, 29598, 29599, 29600, 29601, 29602, 29603, 29604, 29605];
}